#ifndef XEUS_XLANG_CONFIG_HPP
#define XEUS_XLANG_CONFIG_HPP

// Project version
#define XEUS_XLANG_VERSION_MAJOR 0
#define XEUS_XLANG_VERSION_MINOR 1
#define XEUS_XLANG_VERSION_PATCH 0

// Composing the version string from major, minor and patch
#define XEUS_XLANG_CONCATENATE(A, B) XEUS_XLANG_CONCATENATE_IMPL(A, B)
#define XEUS_XLANG_CONCATENATE_IMPL(A, B) A##B
#define XEUS_XLANG_STRINGIFY(a) XEUS_XLANG_STRINGIFY_IMPL(a)
#define XEUS_XLANG_STRINGIFY_IMPL(a) #a

#define XEUS_XLANG_VERSION XEUS_XLANG_STRINGIFY(XEUS_XLANG_CONCATENATE(XEUS_XLANG_VERSION_MAJOR,   \
                 XEUS_XLANG_CONCATENATE(.,XEUS_XLANG_CONCATENATE(XEUS_XLANG_VERSION_MINOR,   \
                                  XEUS_XLANG_CONCATENATE(.,XEUS_XLANG_VERSION_PATCH)))))

#ifdef _WIN32
    #ifdef XEUS_XLANG_EXPORTS
        #define XEUS_XLANG_API __declspec(dllexport)
    #else
        #define XEUS_XLANG_API __declspec(dllimport)
    #endif
#else
    #define XEUS_XLANG_API
#endif

#endif